package ventanas;
import gestores.SistemaEmpresas;
import gestores.SistemaEstadisticas;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;

import org.jfree.data.*;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.*;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.renderer.xy.XYSplineRenderer;

import clasesBasicas.Global;
import utilidades.OpenTextFile;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPanel;

public class Estadistica extends ChartPanel {

	static JFreeChart ini= null;
	public Estadistica() {
		super(ini);
		// TODO Auto-generated constructor stub
	}


	public void setEstadistica(JFreeChart a)
	{
		this.removeAll();
		this.setChart(a);

	}
	String [] aStrings;
	HashMap<String, String> hValores;


	/**
	 * Create the panel.
	 */
	public void setEstadistica(int a) {
		
		//Poner cargando...
		Dimension tempD = this.getSize();
		this.removeAll();
		JPanel cargando= new JPanel(new BorderLayout());
		cargando.setBackground(Color.BLACK);
		JLabel lblcargando = new JLabel("\nCargando...\n");
		lblcargando.setFont(new Font("Serif", Font.BOLD | Font.ITALIC, 60));
		lblcargando.setForeground(Color.WHITE);
		lblcargando.setSize(tempD);
		cargando.add(lblcargando, BorderLayout.CENTER);
		this.add(cargando);
		
		hValores= new HashMap<String, String>();
		SistemaEmpresas siesmp = Global.sisEmp;
		
//	    Calendar fecha = new GregorianCalendar();
//        //Obtenemos el valor del año, mes, día,
//        //hora, minuto y segundo del sistema
//        //usando el método get y el parámetro correspondiente
//        int mes = fecha.get(Calendar.MONTH);
//        int dia = fecha.get(Calendar.DAY_OF_MONTH);
		siesmp.datosEstadisticas("20/05/14 08:00:00", "06/06/14 17:40:00", clasesBasicas.Global.cod_Emp_Sel);
		aStrings=OpenTextFile.open("estadisticas.txt");
		//		if(false)
		//		{
		//			System.out.println("3");
		//			int ultimaHora=0;
		//			for(int i=0;i<aStrings.length-1;i=i+2)
		//			{
		//				String temp= aStrings[i];
		//				String horaS=temp.substring(13, 15);
		//				System.out.println("----->"+horaS);
		//				int hora=Integer.parseInt(horaS);
		//				if(ultimaHora==0){
		//					hValores.put(horaS, temp.substring(24,temp.length()));
		//				}
		//				else
		//				{
		//					if(hora==ultimaHora){
		//						hValores.remove(horaS);
		//						hValores.put(horaS, temp.substring(24,29));
		//					}
		//					else{
		//						hValores.put(horaS, temp.substring(24,29));
		//					}
		//				}
		//
		//			}
		//		}
		//		else
		//		{
		int ultimoDia=0;
		for(int i=0;i<aStrings.length;i=i+2)
		{
			String temp= aStrings[i];
			String diaS=temp.substring(10, 12);
			//				System.out.println(diaS);
			int dia=Integer.parseInt(diaS);
			if(ultimoDia==0)
			{
				System.out.println(temp);
				try
				{
					hValores.put(diaS, temp.substring(24,29));

				}catch (Exception e)
				{
					hValores.put(diaS, temp.substring(24,temp.length()));
				}

			}
			else
			{
				if(dia==ultimoDia)
				{
					hValores.remove(diaS);
					hValores.put(diaS, temp.substring(24,29));
				}
				else
				{
					hValores.put(diaS, temp.substring(24,29));
				}
			}

		}
		//		}
		JFreeChart chart =null;
		//variable que marcará si se ha realizado correctamente
		int comprobar=1;
		XYSplineRenderer renderer= new XYSplineRenderer();
		XYSeriesCollection setDatos= new XYSeriesCollection();

		//Utilizamos estas variables para los nombres de los ejes
		ValueAxis x= new NumberAxis();
		ValueAxis y= new NumberAxis();
		XYSeries serie = new XYSeries("Datos");

		XYPlot plot;
		//		if(false)
		//		{
		//			System.out.println("5");
		//			for(int i=0;i<24;i++)
		//			{
		//				String temp=hValores.get(""+i);
		//				if(temp!=null)
		//				{
		//					serie.add(i, Float.parseFloat(temp));
		//				}
		//			}
		//
		//		}
		//		else
		//		{
		for(int i=0;i<31;i++)
		{
			String temp=hValores.get(""+i);
			if(temp!=null)
			{
				serie.add(i, Float.parseFloat(temp));
			}
		}

		//		}

		if(comprobar==1)
		{
			setDatos.addSeries(serie);
			String tipoS;
			//			if(false)
			//			{
			//				tipoS="Horas";
			//			}
			//			else
			//			{
			tipoS="Dias";
			//			}
			x.setLabel(tipoS);
			y.setLabel("Valor");
			plot= new XYPlot(setDatos, x, y, renderer);
			chart=new JFreeChart(plot);
			//			if(false)
			//			{
			//				chart.setTitle("Movimiento del valor por horas");
			//				plot.getDomainAxis().setAutoRangeMinimumSize(0.1);
			//				plot.getDomainAxis().setRange(8, 18);
			//
			//			}
			//			else
			//			{
			chart.setTitle("Movimiento del valor por días");
			plot.getDomainAxis().setRange(20, 31);

			//			}
		}

		setEstadistica(chart);

	}
//
//	public static void main(String []args)
//	{
//		Estadistica sEoo= new Estadistica();
//		JFrame ventana= new JFrame();
//		sEoo.setEstadistica();
//		ventana.setSize(500,500);
//		ventana.setVisible(true);
//		JPanel p = new JPanel();
//		p.add(sEoo);
//		ventana.add(sEoo);
//		p.setVisible(true);
//
//	}

}


